package gw.com.android.ui.onlive;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;

import gw.com.android.app.GTConfig;

/**
 * @author jett
 * @since 2018-04-24.
 */
class DiscussContentHelper {

    static final int STATE_PROFIT = 1;
    static final int STATE_NONE = 2;
    static final int STATE_LOSS = 3;

    //private final boolean profit;
    private final int state;
    private final Map<String, String> total;
    private Set<String> usedCode;
    private final List<String> remainCode;

    DiscussContentHelper(int state) {
        this.state = state;
        total = getTotalArray();
        remainCode = new ArrayList<>();
        for (Map.Entry<String, String> me : total.entrySet()) {
            remainCode.add(me.getKey());
        }
        usedCode = GTConfig.instance().getUsedDiscuss(state);
        if (usedCode == null || usedCode.isEmpty() || usedCode.size() >= total.size()) {
            return;
        }
        for (String str : usedCode) {
            remainCode.remove(str);
        }
    }

    String acquireContent() {
        Random rand = new Random();
        int random = rand.nextInt(remainCode.size());
        String keyCode = remainCode.remove(random);
        if (usedCode == null) {
            usedCode = new HashSet<>();
        }
        usedCode.add(keyCode);
        // 剩余方案为空，或文案已经全部使用过，清空使用过的数据，填充剩余
        if (remainCode.size() <= 0 || usedCode.size() >= total.size()) {
            usedCode.clear();
            remainCode.clear();
            for (Map.Entry<String, String> me : total.entrySet()) {
                remainCode.add(me.getKey());
            }
        }
        return total.get(keyCode);
    }

    void saveUsed() {
        GTConfig.instance().setUsedDiscuss(state, usedCode);
    }

    private Map<String, String> getTotalArray() {
        switch (state) {
            case STATE_PROFIT:
                return getProfitArray();
            case STATE_LOSS:
                return getLossArray();
            case STATE_NONE:
                return getNoneArray();
            default:
                break;
        }
        return new HashMap<>();
    }

    private Map<String, String> getProfitArray() {
        Map<String, String> map = new HashMap<>();
        map.put("0", "行情来了，闭着眼睛也能赚钱");
        map.put("1", "看到如此清新脱俗的做单，有人要拜师吗？");
        map.put("2", "就想问你们，我这波操作6不6？");
        map.put("3", "不给机智的我点个赞吗？");
        map.put("4", "一觉醒来，发现又赚啦！美滋滋~");
        map.put("5", "人有多大胆，钱就有多好赚~");
        map.put("6", "我的心情就像这行情走势一般……");
        map.put("7", "赚得不要太爽~");
        map.put("8", "距离人生赢家又近了一步，耶！");
        map.put("9", "不是我吹，本来可以赚更多的");
        map.put("10", "是时候展示一下本宝宝真正的实力啦！");
        map.put("11", "心情就像过山车，还好安全开过去了");
        map.put("12", "辛苦耕耘，终于迎来丰收的时刻~");
        map.put("13", "看我这完美的点位，能拿100分吗？");
        map.put("14", "小赚就跑真刺激~");
        map.put("15", "手感来了，躺着都能赚");
        map.put("16", "大吉大利，今晚吃鸡");
        map.put("17", "每天进步一点点~");
        map.put("18", "每天赚一单，爽过吃大餐");
        map.put("19", "盈利虽好，可不能贪心哦");
        map.put("20", "能赚一点是一点，我可是很容易满足的哦");
        map.put("21", "赚钱不易，且赚且珍惜");
        map.put("22", "想知道盈利的秘诀吗？就不告诉你");
        map.put("23", "玩的就是心跳~");
        map.put("24", "跟着老师的思路走，准没错！");
        map.put("25", "听课和不听课的，就是不一样~");
        map.put("26", "跟着老师有钱赚~嘿嘿嘿");
        map.put("27", "老师好厉害，请收下我的膝盖");
        map.put("28", "富通环球投资课堂的老师们在我心中完全就是神一样的存在嘛");
        map.put("29", "原来这里的分析师不仅人帅，做单也厉害");
        map.put("30", "听老师们讲课，获益匪浅");
        map.put("31", "老师都是我男神，人帅指标准~");
        map.put("32", "感谢老师带我飞，爱你们");
        map.put("33", "多亏老师指导有方！");
        map.put("34", "距离一个亿的小目标又近了一步！");
        map.put("35", "戒骄戒躁，有赚就好~");
        map.put("36", "继续努力，相信自己！");
        map.put("37", "小手一抖，晒单奖励到手！");
        map.put("38", "昨日大师夜观星象，告诉我晒单能中奖！");
        map.put("39", "听说晒得越多，赚的也越多哦");
        map.put("40", "新手上路，请多多指教！");
        map.put("41", "老司机来啦，这样操作不盈利算我输~");
        map.put("42", "大家帮忙看看，我这单做的怎么样？");
        map.put("43", "赚钱秘籍之一：心态要好");
        map.put("44", "赚钱秘籍之一：轻仓操作");
        map.put("45", "赚钱秘籍之一：设好止盈止损");
        map.put("46", "赚钱秘籍之一：富通环球投资课堂专心听课");
        map.put("47", "赚钱秘籍之一：大行情来临之时，把握机会！");
        return map;
    }

    private Map<String, String> getLossArray() {
        Map<String, String> map = new HashMap<>();
        map.put("0", "呜呜呜，就当是交学费啦");
        map.put("1", "心疼地抱住胖胖的自己，下一单一定会赚的！");
        map.put("2", "失误了，这可不是我的真正实力");
        map.put("3", "在哪里跌倒，就在哪里爬起来");
        map.put("4", "辛辛苦苦几十年，一单回到解放前");
        map.put("5", "后悔没认真听老师讲课……");
        map.put("6", "下把再接再厉啦");
        map.put("7", "没有人是完美的，世上哪有常胜将军呢？");
        map.put("8", "下次找机会赚回来");
        map.put("9", "唉，一顿饭钱又没了");
        map.put("10", "看来我还是太年轻！");
        map.put("11", "天下没有稳赚的钱，盈亏乃投资者常事也~");
        map.put("12", "在我下单的那一刻，仿佛就看到了结局……");
        map.put("13", "权当练手咯");
        map.put("14", "不经历风雨，怎么见彩虹");
        return map;
    }

    private Map<String, String> getNoneArray() {
        Map<String, String> map = new HashMap<>();
        map.put("0", "没亏就是赚，稳扎稳打，下次再来");
        map.put("1", "保本第一，盈利第二");
        map.put("2", "看似没亏没赚，但学到了东西，所以还是赚了");
        return map;
    }

}
